Skip to content

Conversation

@JiaLiangC
Copy link
Contributor

@JiaLiangC JiaLiangC commented Dec 9, 2024

What changes were proposed in this pull request?

The main change is in this commit 4d37709. The other commits are due to ruff formatting. We can trust that ruff only changes the format and does not alter the meaning of the code or introduce errors.

The entire Ambari project has accumulated a large amount of Python code, which is the result of the collective efforts of multiple contributors to make Ambari better.

Language Files Lines Code Comments Blanks
Java 3330 690679 427116 156389 107174
JavaScript 2125 512742 374238 87081 51423
Plain Text 68 500082 0 497409 2673
JSON 758 479988 479689 0 299
Python 1096 218057 175499 9547 33011
XML 1135 156581 130300 20189 6092

During this process, a problem has emerged: everyone has different coding styles, which leads to inconsistencies in the submitted code. This can result in various inconveniences, such as increased understanding costs of the underlying principles and greater difficulty in identifying the root causes of issues. As the codebase grows, these problems become increasingly apparent. Therefore, we are introducing ruff, along with some additional processes, to format the code and alleviate these issues.

What is Ruff?

An extremely fast Python linter and code formatter, written in Rust. Its speed is one of its advantages. More information can be found here: ruff.
(Please fill in changes proposed in this fix)

Ruff rules are derived from the Apache Superset project's rule file.

Ruff integration plan:

  1. Project integration with Ruff, formatting all Python files, ensuring all tests pass, and the cluster runs normally. Completed.
  2. Integration of Ruff detection into Jenkins. Completed.

Notice: This PR's Ruff rules ignore some rule checks because these rules involve significant changes that will be addressed in subsequent PRs. The current PR ensures that all Python indentation and basic formatting conform to standards.


Ruff Usage Instructions in Ambari Code Submission

Install Ruff:

pip install ruff

Format Code with Ruff:

ruff format .

Check Code Format Manually:

ruff check .

Check Code Format with Maven:

mvn exec:exec@ruff-check -Pruff-check

Fix Code Format with Maven:

mvn exec:exec@ruff-format -Pruff-format

How was this patch tested?

manual test CI/CD
After formatting thousands of files with Ruff, I deployed a simple cluster to verify that Ambari runs smoothly, everything works well.

image
image
image
image

(Please explain how this patch was tested. Ex: unit tests, manual tests)
(If this patch involves UI changes, please attach a screen-shot; otherwise, remove this)

Please review Ambari Contributing Guide before opening a pull request.

@JiaLiangC JiaLiangC requested a review from virajjasani December 9, 2024 09:47
@virajjasani
Copy link
Contributor

This is very big PR :)
Do we want to backport to branch-2.7 as well?

@JiaLiangC
Copy link
Contributor Author

Do we want to backport to branch-2.7 as well?

This won't be backported to 2.7. Due to HDP's closed source, 2.7 is rarely used anymore. Perhaps it's time to consider it end-of-life.

@JiaLiangC JiaLiangC merged commit 9df3a16 into apache:trunk Dec 10, 2024
JiaLiangC added a commit that referenced this pull request Feb 6, 2025
* AMBARI-26232 There will be failure when executing shell.py and wrong order of imports for WidgetResourceProvider.java (#3872)

* There will be failure when executing shell.py
* Wrong order of imports for WidgetResourceProvider.java
* Fix issue of test failure

* AMBARI-26234: ClusterNotFoundException in stage Confirm Hosts during deploying a cluster #3875

* AMBARI-26184: Resolve snakeyaml 1.12 CVE #3869

* AMBARI-26235: Unable to check firewalld status when setup ambari #3878

* AMBARI-26195: Ambari database page not wokring after JQ upgrade #3885

* AMBARI-26239: Fix OozieUtils (#3894)

* AMBARI-26239: Fix OozieUtils

* AMBARI-26205: Dropdown menu flex layout overflow #3895

* AMBARI-26236: The database password character type requirement is too few (#3883)

* The database password character type requirement is too few
* Add more special characters, and add UT for this case
* Update test case

* AMBARI-26240: Fix alter dispatcher (#3896)

* AMBARI-26241: _threadlocal has no uid because it is always None #3898

* AMBARI-26243: refactor: convert .format() to f-strings #3899

* AMBARI-26244: convert .format() to f-strings for ambari-server #3901

* AMBARI-26245: refactor(ambari-agent): convert .format() to f-strings (#3902)

* AMBARI-26249: Timeline Service v2 failed to start because of unable to create leveldb state store directory #3905

* AMBARI-26247: convert .format() to f-strings for ambari-contrib #3903

* Update the KEYS File

* AMBARI-26253: Can't download all client configs (#3906)

* AMBARI-26257: Create new Configuration Group now worked #3907

* AMBARI-26248: Timeline Service Reader failed to start if hbase is not installed #3904

* AMBARI-26147: Add Ruff integration to ambari  (#3908)

* add ruff check files
* add formatted code

* AMBARI-26251: tooltip display issue #3911

* AMBARI-26207: Metrics sortable not work #3912

* AMBARI-26255: fix can't add capacity-scheduler views (#3913)

* AMBARI-26270: Add quicklink of hiveserver2 web ui #3918

* AMBARI-26142: JDK17 support for Ambari Co-authored-by: Mohammad Arshad <[email protected]> (#3851)

* AMBARI-26204: Migrate RecommendationResourceProviderTest from EasyMoc… (#3860)

* AMBARI-26204: Migrate RecommendationResourceProviderTest from EasyMock to Mockito

* AMBARI-26203: Fix annotation processing issue in ConfigurationTest after JDK 17 upgrade (#3859)

* AMBARI-26203: Fix testAllPropertiesHaveMarkdownDescriptions failed

* AMBARI-26212: Fix checkstyle error (#3862)

* Ambari-26211: Fix TaskActionScheduler test failed (#3861)

* AMBARI-26211: Fix TaskActionScheduler test failed

* AMBARI-26215: Fix BlueprintConfigurationProcessorTest and others (#3863)

* AMBARI-26215: Fix BlueprintConfigurationProcessorTest and others

* AMBARI-26220: Fix ConfigureClusterTaskTest Unexpected method calls: ClusterConfigurationRequest.getRequiredHostGroups() error (#3864)

fix AsyncCallableServiceTest Unexpected method calls: Callable.call() error

* AMBARI-26221: Fix StackAdvisorCommandTest error,remove unnecessary code. (#3865)

* AMBARI-26222: Fix ClientConfigResourceProviderTest & PreUpgradeCheckResourceProviderTest& ExecutionSchedulerTest& AmbariProxiedUserDetailsServiceTest

* AMBARI-26233: Fix ambari-env.sh after jdk upgrade (#3873)

* fix ambari agent env after jdk upgrade

* AMBARI-26238: Add Ambari Java Home configuration for JDK 17 in Ambari… (#3891)

* AMBARI-26238: Add Ambari Java Home configuration for JDK 17 in Ambari server

* AMBARI-26268: Remove default value for ambari-java-home in ambari-server.py to fix setup handling #3915

Co-authored-by: tongxiaojun <[email protected]>

* AMBARI-26269: Fix regex pattern flag position in ambari_jinja2 filters #3917

* AMBARI-26269: Fix regex pattern flag position in ambari_jinja2 filters
---------

Co-authored-by: tongxiaojun <[email protected]>

* AMBARI-26249: Addendum, adjusting the location of creating directory code (#3920)

* AMBARI-26271: Invalid parameter was provided when using shell.call in HostInfo.py #3919

* AMBARI-26273: Add Oceanbase Support to Ambari MySQL DDL #3921

Co-authored-by: tongxiaojun <[email protected]>

* AMBARI-26275: NoClassesFoundToAnalyzeException when compiling ambari with jdk17 #3924

* AMBARI-25848 : Need to update org.codehaus.jackson:jackson-mapper-asl dependency (#3922)

Issue: Need to update org.codehaus.jackson:jackson-mapper-asl dependency.

Cause: the library has been moved to com.fasterxml.jackson.core » jackson-databind,
hence to keep up with the newer versions need to update the library dependency.

Changes made: to update the jackson-mapper-asl dependency to jackson-databind and the required library version upgrades

Co-authored-by: Vishal Suvagia <[email protected]>

* AMBARI-26276: fix hdfs web service check (#3925)

* AMBARI-26277:fix kerberos encryption error (#3926)

* AMBARI-26279: ambari-agent prints logs that netstat command not found #3928

* AMBARI-26286: refactor(ambari-ruff): convert .format() to f-strings #3927

AMBARI-26286: refactor(ambari-ruff): convert .format() to f-strings

* AMBARI-26055: Add alluxio support (#3934)

* add alluxio service

Co-authored-by: jialiang <[email protected]>

* fix license

---------

Co-authored-by: jialiang <[email protected]>

* AMBARI-26185: Upgrade commons-collections to resolve CVEs (#3936)

---------

Co-authored-by: Peng Lu <[email protected]>
Co-authored-by: Sandeep  Kumar <[email protected]>
Co-authored-by: zrain <[email protected]>
Co-authored-by: coldless177 <[email protected]>
Co-authored-by: jialiang <[email protected]>
Co-authored-by: yaruyng <[email protected]>
Co-authored-by: tongxiaojun <[email protected]>
Co-authored-by: tongxiaojun <[email protected]>
Co-authored-by: Vishal Suvagia <[email protected]>
Co-authored-by: Vishal Suvagia <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants